home *** CD-ROM | disk | FTP | other *** search
- package engine
- {
- import copy.CopyBank;
- import flash.display.Sprite;
- import flash.events.TimerEvent;
- import flash.utils.Timer;
-
- public class Engine extends Sprite
- {
-
- private static var _instance:Engine;
-
-
- private var _lives:Number = 3;
-
- private var _gameUI:GameUI;
-
- private var _states:Object;
-
- private var _difficulty:Number = 0;
-
- private var _paused:Boolean = false;
-
- private var _initialSetup:Boolean = false;
-
- private var _fuel:Number = 100;
-
- private var _state:Number = 0;
-
- private var _lifeCounter:Number = 0;
-
- private var _scene:WorldScene;
-
- private var _score:Number = 0;
-
- private var _missionTime:Number = 0;
-
- private var _secondaryState:Number = 0;
-
- private var _missionNumber:Number = 1;
-
- private var _missionTimer:Timer;
-
- public function Engine()
- {
- _states = {
- "Inactive":0,
- "MissionScreen":1,
- "Gameplay":2,
- "Paused":3,
- "LevelComplete":4,
- "Gameover":5
- };
- _secondaryState = 0;
- _state = 0;
- _paused = false;
- _initialSetup = false;
- _difficulty = 0;
- _fuel = 100;
- _lives = 3;
- _score = 0;
- _lifeCounter = 0;
- _missionNumber = 1;
- _missionTime = 0;
- super();
- _instance = this;
- _scene = new WorldScene();
- _scene.x = 5;
- _scene.y = 5;
- addChild(_scene);
- _gameUI = new GameUI();
- _gameUI.y = 413;
- addChild(_gameUI);
- _gameUI.init();
- _missionTimer = new Timer(100);
- _missionTimer.addEventListener(TimerEvent.TIMER,onTimerHandler);
- }
-
- public static function get Instance() : Engine
- {
- return _instance;
- }
-
- public function get STATES() : Object
- {
- return _states;
- }
-
- public function updateSoundDisplay() : *
- {
- _gameUI.updateSoundDisplay();
- }
-
- public function startNewGame() : *
- {
- _fuel = 100;
- _lives = 3;
- _score = 0;
- _difficulty = 0;
- _scene.clearMissionElements();
- _gameUI.updateLives(_lives);
- _gameUI.updateFuel(_fuel);
- _gameUI.updateScore(_score);
- startMission(1);
- }
-
- public function initSceneMain() : *
- {
- if(!_initialSetup)
- {
- _initialSetup = true;
- _scene.initStaticElements();
- }
- }
-
- public function setPopupMessage(msgObj:Object) : *
- {
- _gameUI.setMessage(msgObj.msg,msgObj.vibe);
- }
-
- public function get State() : Number
- {
- return _state;
- }
-
- public function endGame() : *
- {
- var missionString:String = null;
- missionString = String(_missionNumber);
- if(missionString.length < 2)
- {
- missionString = "0" + missionString;
- }
- Main.Instance.Tracker.trackEvent("NATM2_Flight","Level" + missionString,"quit",Math.floor(_missionTime));
- _missionTimer.stop();
- _state = STATES.Inactive;
- Main.Instance.stopPropeller();
- }
-
- public function get Score() : *
- {
- return _score;
- }
-
- public function cacheBitmaps() : *
- {
- BitmapLibrary.init();
- }
-
- public function startGameplay() : *
- {
- _state = STATES.Gameplay;
- _scene.respawn();
- Main.Instance.setMissionMusic();
- _missionTimer.start();
- trace("Engine.Instance.Difficulty: " + Engine.Instance.Difficulty);
- }
-
- public function initCopy() : *
- {
- _gameUI.initCopy();
- }
-
- public function set Fuel(inVal:Number) : *
- {
- _fuel = inVal;
- if(_fuel > 100)
- {
- _fuel = 100;
- }
- _gameUI.updateFuel(_fuel);
- }
-
- public function addScore(inVal:Number) : *
- {
- _score += inVal;
- _gameUI.updateScore(_score);
- }
-
- public function startMission(mission:Number = 0) : *
- {
- var missionString:String = null;
- _missionTime = 0;
- _missionTimer.stop();
- missionString = String(_missionNumber);
- if(missionString.length < 2)
- {
- missionString = "0" + missionString;
- }
- Main.Instance.Tracker.trackEvent("NATM2_Flight","Level" + missionString,"start");
- if(mission > 0)
- {
- _missionNumber = mission;
- }
- _scene.initMissionElements(_missionNumber);
- _gameUI.setMissionScreen(_missionNumber);
- _state = STATES.MissionScreen;
- }
-
- public function set Lives(inVal:Number) : *
- {
- _lives = inVal;
- _gameUI.updateLives(_lives);
- }
-
- private function onTimerHandler(event:*) : *
- {
- _missionTime += 0.1;
- }
-
- public function get Difficulty() : *
- {
- return _difficulty;
- }
-
- public function missionComplete() : *
- {
- var missionString:String = null;
- _gameUI.setVictoryScreen();
- trace("_missionTime: " + _missionTime);
- missionString = String(_missionNumber);
- if(missionString.length < 2)
- {
- missionString = "0" + missionString;
- }
- Main.Instance.Tracker.trackEvent("NATM2_Flight","Level" + missionString,"complete",Math.floor(_missionTime));
- _missionTimer.stop();
- ++_missionNumber;
- ++_lifeCounter;
- if(_lifeCounter > 4)
- {
- _lifeCounter = 0;
- addLives(1);
- }
- ++_difficulty;
- }
-
- public function addLives(inVal:Number) : *
- {
- var missionString:String = null;
- trace("addlives. inVal: " + inVal);
- _lives += inVal;
- if(_lives < 0)
- {
- gameOver();
- }
- if(inVal > 0)
- {
- Engine.Instance.setPopupMessage(CopyBank.Instance.FreeLife);
- }
- else
- {
- missionString = String(_missionNumber);
- if(missionString.length < 2)
- {
- missionString = "0" + missionString;
- }
- if(_scene.PlaneObj.Fuel > 0)
- {
- Main.Instance.Tracker.trackEvent("NATM2_Flight","miscellaneous","LifeLost_damage",missionString);
- }
- else
- {
- Main.Instance.Tracker.trackEvent("NATM2_Flight","miscellaneous","LifeLost_fuel",missionString);
- }
- }
- if(_lives > 3)
- {
- addScore(50000);
- _lives = 3;
- }
- _gameUI.updateLives(_lives,true);
- }
-
- public function set Score(inVal:Number) : *
- {
- _score = inVal;
- _gameUI.updateScore(_score);
- }
-
- private function gameOver() : *
- {
- var missionString:String = null;
- missionString = String(_missionNumber);
- if(missionString.length < 2)
- {
- missionString = "0" + missionString;
- }
- Main.Instance.Tracker.trackEvent("NATM2_Flight","Level" + missionString,"fail",Math.floor(_missionTime));
- _missionTimer.stop();
- _gameUI.setGameoverScreen();
- _state = STATES.Gameover;
- Main.Instance.stopPropeller();
- Main.Instance.setMenuMusic();
- }
-
- public function get Lives() : Number
- {
- return _lives;
- }
-
- public function pauseToggle(overrideSetting:Boolean = false) : void
- {
- if(_state == _states.Gameplay)
- {
- trace("attempting to pause");
- _secondaryState = _states.Gameplay;
- Main.Instance.Tracker.trackEvent("NATM2_Flight","pauseGame","on");
- _missionTimer.stop();
- _state = _states.Paused;
- return;
- }
- if(_state == _states.Paused && !overrideSetting)
- {
- Main.Instance.Tracker.trackEvent("NATM2_Flight","pauseGame","off");
- _state = _secondaryState;
- if(_missionTimer)
- {
- if(_state == _states.Gameplay)
- {
- _missionTimer.start();
- }
- }
- return;
- }
- }
- }
- }
-